Reviewing your website as it is now, I am not too sure if this is a problem any longer / currently.
The issue is not internal linkage on your website with the inclusion of UTM parameters (as another question suggests).
It seems more like some process you have to share your website content on social media is leaving the UTM parameters in the URLs and sharing those URLs which has, at some point, led to them being indexed.
It is rare that this happens, but it has happened to many other sites before. The fact that it is only three pages indexed with these parameters is indicative that this is neither a serious issue nor a sitewide one.
Here are the steps you can take to help eradicate this from happening:-
1. Specify a canonical URL on your pages
You are already doing this and the implementation is correct. This will ensure only the specified canonical URL will be given weight in search engines. Presumably this has always been in place but if not, then this could explain why there are some old instances of pages still indexed with UTM parameters.
2. Instruct Google not to index the UTM parameters in Search Console
In the event that some URLs are being indexed with the UTM parameters (like your case), the URL parameter should appear as a detected one from within the 'Crawl > URL Parameters' section of Google Search Console for your domain (see below).
Even if the UTM parameters do not appear, you can 'Add Parameter' to create them.
Simply select No: Doesn't affect page content (ex: tracks usage)
(known as 'Passive Parameters') and Google will then usually only crawl just one URL with a specific parameter value.
3 Disallow the URL parameters in your robots.txt
This will block Google from indexing the content of these URLs but not the actual URLs themselves (they could still display in the search results but will just omit the description like below).
Simply adding something like the following would handle this from robots.txt
:-
Disallow: /*?utm=*
Conclusion
Steps #1 and #2 should be carried out as a matter of precaution and "best practice" anyhow and step #3 in addition to steps #1 and #2 perhaps (as won't be effective on its own).
Within Google Search Console, there is also the ability to (temporarily) remove URLs. This is particularly useful if there are some stubborn pages still indexed but you know the root source of the issue has been resolved and this facility should be enough to rid of them once and for all from the search results.
I have not included this as a step above as, despite having researched this before, I cannot recall whether it will support URLs with parameters [citation needed]. I once knew the answer but my memory fails me on this particular occasion.
More reading on the removal of URLs from Google.
site:stackexchange.com inurl:utm_campaign
also returns similar results (on a slightly larger scale). Also note thatsite:
searches do often return non-canonical URLs in the results, that ordinarily don't get returned in "normal" searches. However, the above URLs also seem to be returned in "normal" searches as well.