A solution I could think of is adapting the body script to have 2 separate bodies; one modeled with arms and one without. When the player is holding a weapon, show the one without arms, and hide the one with. If the player has no weapon drawn/equipped, show the one with arms and hide the one without. The only issue with this approach is that the player will notice their shadow becomes armless!
Unfortunately there's no way to have an object cast a shadow while not being visible (to my knowledge). If this were the case then it would be easy as pie to fix; when you hide the body with arms, make it still cast a shadow, and the armless version never casts shadows. Then have the armed body (pun somewhat intended) play an animation of them holding up a weapon, so that the player can see their shadow has their arms roughly matching the first person view.