I would use super glue and keep it pressed with be a piece of cardboard or a cloth for a couple of minutes..
or in your nearest local auto part store, a can of permatex, don't spray it directly, spray it on your finger or something you can use to spread it on the sticker, same process I'd press it in for a minute or two with a piece of carboard or cloth
@ChiefXue - The sticker on the driver's side sunvisor started peeling off in my '16 EX CVT within ~1st year, while under warranty. The dealer said I should just to pull it off. I didn't want to do that, so they pulled it off at the next service.
It left the same marks on the visor fabric that I can see in your pic where it peeled. So you will know exactly where it had been attached to the visor. It looked awful in my car and the dealer ended up having to replace the entire visor under warranty.
Bottom line, either glue it back in place as was suggested, find a way to hide the marks after you remove it and/or be prepared to be annoyed by the marks.
Another possibility is to scout local junkyards for a visor with the sticker still firmly attached. Likely to be cheaper than a new one...
I would not use anything that dries hard; eg glue. My suggestion for this kind of stuff would be some sort of spray adhesive but your gonna have to buy a big can for a small job. Maybe also look into glue sticks? Not sure they can handle the heat though or go to auto upholstery shop and ask them for a suggestion.
Look for heat resistant adhesive that does not dry hard as suggested above. This may work. I would probably peel the sticker off and spray the adhesive on it. Or you may spray some adhesive in a cup and use an aplicator. Good luck