Different applications can have different ways of finding resources like Python and OpenSSL, so it really depends on the particular applications you are interested in and what their dependencies are. Some may have their own internal distributions, some may not be compatible with new versions, and some may depend on macOS specific extensions.
The challenge is figuring how how a particular application is finding its resources and putting the new versions where it can see them. Just remember that while you can lead an application to libraries, but you can't make it link.
Here are some approaches:
* Look in the application package to see if it has private copies of the libraries. If it does, make a backup of the application and try replacing the libraries/frameworks directly. This will break the application signature.
* If it is not using private libraries, use "otool -L" on the application executable to find its linking dependencies. For example, "otool -L /Applications/Pages.app/Contents/MacOS/Pages".
* If it is linking to /System versions, try modifying its library search path by uisng LSEnvironment in its Info.plist to change LD_LIBRARY_PATH, LC_LOAD_DYLIB, or LC_RPATH. This will also break the application signature. The following article may help:
* If all else fails, and you REALLY want to replace those libraries, you could disable System Integrity Protection and install into /System/Library. But that could create system wide stability problems, reduces security of the overall system, and may create problems when you try to upgrade the system.