Modify page title and subtitle with a plugin

In simple words the problem with your approach is this:

The title kind of already is on his way from your server to the browser of your users when WordPress starts thinking about the content where your shortcodes are in. So this is too late.

Also if you look at what the is_page function takes as a parameter…

Page ID, Page Title or Page Slug

… you see that a shortcode isn’t an option to use.

So if you are already familiar with using URL parameters why not use those directly in the filter above instead of trying to go through shortcodes?