You don’t need a templated UProperty, you can just store it as a UObject* (which all TSoftObjectPtrs must be) and that should be it.
UPROPERTY()
TSoftObjectPtr MyAsset;
UPROPERTY()
UObject* MyLoadedAsset; // Set the loaded asset returned by MyAsset to this.