Brushing not enough. Cavities caused by bacteria turning sugars/starches into acid, and the a acid makes holes in the teeth. Do you limit sugars/starches in your child's diet? Does child have a 2 minute timer for brushing? Regular not good enough if teeth not cleaned properly. Do you supervise their brushing to make sure all areas are reached? Floss? Fluoride? See your dentist for instructions and supervise child.
Many Reasons. It's great that you have him brush his teeth regularly, but there are other factors. Cavities are usually caused by the type of food, especially foods rich in sugar and certain carbs and starches. Bacteria love this type of food and they produce acids which will eventually cause cavities or dental caries. Best to take care of the cavity right away when it is small.
Several possibilitie. The tooth may not have formed perfectly, even with brushing regularly decay may occur depending on eating and drinking habits. I would discuss this with your dentist who knows the particulars of your three year-old.