We have 2 repos related to each other. The pipeline job checks out both one after another. So ideally it should run whenever there's a change in either repo checked in.
Is it possible to set it to run from webhook trigger coming from either repo or is SCM polling for both repos is the only option?
Yes, this is possible. You need to configure webhooks on your both git repositories targetting the same pipeline, so, whenever there is a change on whatever repo, the same pipeline is started.