I apologize for giving the impression that Manifest V3 is a subset of Manifest V2; that was not my intention. I was trying to get at the idea that a service worker is (generally speaking) a more limited execution environment than a page. Most of what you can do in a service worker script can also be done in a page script. In that sense, moving from a service worker in Manifest V3 to a page in Manifest V2 will likely be a more straightforward process than moving from a Maniest V2 page to a Manifest V3 service worker. As Cuyler said, there are API incompatibilities in both directions, but I expect that you're more likely to have challenges moving away from pages than to them.
Beyond that, though, my comment was intentionally framed as optimistic encouragement for the question asker. I mostly wanted to stress that (with some modifications) their extension may be able to support Firefox's Manifest V2 platform and Chrome's Manifest V3 platform at the same time. While there are API incompatibilities between the manifest versions and browsers, developers can work around many of these differences via shims or utility libs that abstract away the implementation details of their build targets. For example, you could write an executeScript wrapper function that uses tabs.executeScript in Manifest V2 and scripting.executeScript in Manifest V3.
BTW, the Declarative Net Request API is available in both Manifest V2 and V3 on Chrome and other browser vendor(s) are also currently working on implementing support.