Add a Sprite for each of the weapons to your player scene. It's OK if they overlap, because you're going to only make one of them visible at a time, using the visibility/opacity
property.
First, have a variable to track which weapon:
var current_weapon = 1
Use input to switch it:
func _input(event):
if event.is_action_pressed("weapon_1"):
current_weapon = 1
get_node("weapon 1").set_opacity(1)
get_node("weapon 2").set_opacity(0)
# you can also trigger animations or play sound effects here
elif event.is_action_pressed("weapon_2"):
current_weapon = 2
get_node("weapon 1").set_opacity(0)
get_node("weapon 2").set_opacity(1)
Then whenever the player uses the weapon (keypress, autofire - however you have it implemented), call the appropriate function that fires a bullet, plays an animation, etc.