This tutorial explains how to add web push notifications to a domain and to all its subdomains using Pushpad.
One option is to treat each subdomain as a completely separate domain. Go to the Pushpad Dashboard and create a different sender / project for each subdomain. However this is only useful if you have only a few subdomains (e.g. blog.example.com) and you want to keep a greater level of separation between them. To give an analogy, it's like when you create a different SSL certificare for each subdomain: if one gets compromised the others are still safe because you use different keys for each subdomain.
The easiest option if you have many subdomains or you create them dynamically (e.g. you have a subdomain for each of your customers) is to create just one sender for your main domain (e.g. example.com) and use it also for all the subdomains (e.g. sub1.example.com, sub2.example.com) or related domains (e.g. example.org, example.net). To give an analogy, it's like when you create a wildcard SSL certificate and you use it for all your subdomains. Talking about web push, this method works for all the browsers that support the Web Push API (Chrome, Firefox, Opera, ecc.). This method also works for Safari (desktop) with some limitations. If you have only a few domains then you can go to the Pushpad dashboard -> Sender settings and add some Additional domains. However Safari doesn't support wildcard options: you need to add each domain explicitly.
You can read more in the docs.