It's less about the "proper way" and more about "the way that makes the most sense". In this case, I don't think having a separate script specific to the WeaponHolder is the right move, mostly because you're creating needless modularity which is more difficult to build upon and maintain. Instead, I'd handle it all from the same script that handles your player (which I assume is attached to the root CharacterBody3D node?). A section of that script dedicated to handling weapons makes a lot more sense in my opinion.
Now, if you've got a mechanic where your NPCs or enemies can also pick up weapons, that's a different story.