Can an ICAO contracting state charge money for NOTAMS?
Extract from ICAO Annexe 15 (Aeronautical Information Services):

3.5 Cost recovery


Recommendation.— The overhead cost of collecting and compiling aeronautical information/data should be included in the cost basis for airport and air navigation services charges, as appropriate, in accordance with the principles contained in ICAO’s Policies on Charges for Airports and Air Navigation Services (Doc 9082).


Note.— When costs of collection and compilation of aeronautical information/data are recovered through airports and air navigation services charges, the charge to an individual customer for the supply of a particular AIS product, either in paper or electronic form, may be based on the costs of printing paper copies or production of electronic media, and costs of distribution.

NOTAMS are issued gratis (free) as the information can be essential to the safe conduct of flights. The raw NOTAM is available to any member of the public, anywhere in the world online via the country's AIP (Aeronautiical Information Publication/Services) documents which are of a standard format. You'll probably have to register at no cost as a user though.
Click here for the FAA site
A company could charge a fee for processing the info thus obtained so as to tailor the NOTAM list and filter it in a manner suitable for a particular Operator. Or they could put it into a more user friendly format. It maybe noted that briefing areas have (computer) terminals dedicated to this linked to the official NOTAM server, and these terminals can have powerful filtering capabilities already provided by the issueing/distributing authorities.
ICAO lays down that safety related info should disseminated in such a way that there's no undue hindrance for the end user. Think of it this way - could the authority refuse this info to the pilot if it so happens that the subscription was not renewed on time due to any mundane reason?