I use prefabs as ScriptableObject replacement. I wrote about it a while ago, see Prefab's as ScriptableObject's on steroids
The only thing I really hate when using prefabs for this use-case is that you can’t use Unity’s “Object Picker” for these prefab data containers the same way you can use it for a ScriptableObject.