You could try this registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Clients\StartMenuInternet // <-- x64 only
where all the browsers (even portable ones) should registers themselves (source).
Then you lookup command
subkey for the browser's main executable path. For example, my portable Chromium is found here:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Clients\StartMenuInternet\Chromium.Y75GGO62VNIN4R2QLYJDH66X4I\shell\open\command
After that you can pull browser version from .exe directly - How do I programatically get the version of a DLL or EXE file?. You can check this version information in GUI as well - go to file Properties (via right-click Context Menu), then Details tab.
It worked for me for portable Chromium, but didn't try it on other non-standard browsers.