It won’t work for newsletters. For newsletters, duplicate content is your best bet. (And if you’re going to do it for newsletters, perhaps you should just do it for web posts also.)
But if you do want to use that approach, something like (not tested)
{{#foreach @products as |product|}}
{{#match @member.subscriptions.0.price.product.product_id "=" product.id}}
{{#get pages filter="slug:{{product.id}}-{{somethingelse}}" }}
{{#foreach pages}}
{{content}}
{{#foreach}}
{{/get}}
{{/match}}
{{/foreach}}
Membership code borrowed from: Detecting a member's tier - #6 by joesb
Things to watch out for: Members who’ve created and cancelled subscriptions may have multiple subscriptions being looped over, so matching on [0] my be wrong.
You’d want to pass in the slug of the post from the outer context, but you can’t do that with …/slug, because filters won’t take that. See an example of passing into a partial to avoid this in my code here: (better approach?) A better related block for Ghost