Instantiating generic prefabs

for as long as I have been using Unity, I have created new copies of prefabs at run-time by saving the prefab in a variable and instantiating it when necessary. This is seeming increasingly ridiculous, and now I’m in a situation where it doesn’t work at all. I want to create a static method which generates an inventory item in the world (so when the player drops an item stored as a ScriptableObject a copy is spawned as a GameObject next to them). I have a prefab which all WorldObjects should copy. Is there a better way than using Resource.Load() to reference this prefab in a static class?

Thanks!

Resources.Load would be the correct way to do this.
Why are you asking for a “Better way”?