I don't think user access tokens play a role in creating a subscription. You only need to prove that you are the owner of your app, which you do by providing your client secret. Once your subscription is created, your app will get events for athletes who have authorized your app. So, I would remove the Authorization header for starters.
But, I think the main problem is that your are passing client_id and client_secret, and callback_url as headers rather than as form parameters. If you're using postman, try the 'form-data' option for your body. Or, use the cURL command in the docs:
https://developers.strava.com/docs/webhooks/