It is normal for a 3 year old boy to wear diapers.
Some 3 year old boys are not potty trained and need to wear diapers during the day and night and that is okay.
Also some 3 year olds and older kids may need to wear diapers at night for bed wetting and that is also normal.
Although a lot of 3 year old boys are potty trained some just are not ready to be.
It is normal for a 2 year old boy to wear diapers.
Although there are some 2 year old boys who are potty trained and out of diapers most 2 year olds do wear diapers and are not potty trained.
There's no actual age at which a child has to be potty trained as all kids are different.
While some kids can potty train and no longer need diapers at 18 months of age to 2 years of age some kids just take longer.
Your kid will potty train when they are ready and not before.
Forcing a child to potty train before they are actually ready will make the potty training take longer and could lead to the child developing bladder infections and bowel issues.
When a child is fully ready to potty train they will potty train within a few days to a week.
Even some kids take as long as 4 to 5 years old to potty train.
My nephew who is now 10 years old didn't potty train until he was almost 8 years old although he had a slight form of autism.
But most kids will potty train before then.
If your kid is not potty trained by age 5 then I would worry and start forcing the issue unless they have health issues.
But until then keep the kid in diapers until they are ready.