There are a few ways you can do this:
1. create separate animations for the character sprite holding different weapons.
2. Pin weapon to an image point (might need a plugin) or origin point of the character sprite. Mirror both the character and the weapon.
3. Set weapon position/angle/mirrored state on every tick to character's position/angle/mirrored state.
See this post:
As for firing a bullet, you need to set bullet angle (or bullet angle of motion) to 180 when the character is mirrored.