Thank you @mike for your response.
We have been using TealiumIQ for our tag management and snowplow is being managed by TealiumIQ.
TealiumIQ initialises snowplow in a hidden native webview, that way all our events from both web and mobile can use same Iglu schema. The point here is, our data structures are same across web and native mobile app and we have domain_sessionid for mobile.
Now the application itself opens a range of URLs in webview and those webviews have different session id as compared to the events coming from native app.
I guess we can read the session id from the TealiumIQ managed hidded webview for snowplow and pass it to the app managed webview as a query param in the URL, but is there any way we can set/override a custom session id coming as a query param?