Make sure to set the origins of the meshes to be the same as the transforms of the individual bones in Blender.
Then detach them from the skeleton and clear transforms and export just those meshes as an fbx. Import that fbx as static meshes.
Attach a simple tiny plane or triangle or something to the skeleton and export that fbx (I wish this weren’t necessary, but Unreal won’t let us import skeletons without meshes). Import that as a skeletal mesh.
Attach the static meshes to the skeletal mesh in a blueprint and choose the bones as the socket, and zero out the transforms for the skeletal meshes in the blueprint.
This’ll give you a handful of advantages: you’ll be able to swap out the different components of the weapon easily, the weapon won’t be rendering through the skeletal mesh pipeline (which can be pretty expensive), and you’ll be able to use Nanite for the weapon components if you want.