By 3.5 the consequence is having to clean up, not sitting in wet/ dirty stuff. if he is not going to the toilet because he is being lazy, then if he has accidents in the house insist he goes to the bathroom as soon as he says/ you realise he's had an accident and remove his wet clothes, get in the shower, let you shower him (not hair obviously), get out, he has to dry himself (you finish drying), he has to go upstairs and get himself clean dry clothes and dress himself, then he gets kitchen roll and does his best to clean the accident up off the floor (you might have to finish the job of course).
That way having an accident is way more of an interruption to playing / watching TV than a quick toilet trip.
If he cares about clothes (favourite items) you can also have less well loved / plain boring cheap tracksuits as "emergency" clothes to be worn after accidents but let him choose his own clothing when getting dressed in the morning.
Only if you are fairly sure he just cba to go rather than doesn't know when he needs to - better than leaving him in wet or shitty clothes mainly because it causes him a lot more inconvenience!
He may though genuinely not know when he needs to go, given the way you've loosely routine trained him - in which case its hardly his fault and you need to go back to bare bum in the house and stay in for 3 days, never ask him and tell him he is in charge of keeping the floor and furniture clean and dry by using the toilet - praise and bribe.
My older two DC were easy to train at age 2 but my youngest was 3.5 and only trained in response to a big bribe (there was something he really wanted and so I said OK once you've had no accidents for a whole day - it worked, though he had the odd accident for a while he was motivated for the first time. Prior to that he's said he liked being a baby and wanted to wear nappies for ever :o