Joshua Paul Britton was pulled over in a BMW 1 Series on the M27 near Fareham.
Following a drugs test, he was found to have traces of cocaine, THC and benzoylecgonine in his system.
They are substances the body makes when it ingests cannabis and cocaine.
Appearing before Portsmouth Magistrates' Court, he pleaded guilty to the three counts of drug driving that happened on January 9 this year.
Britton, of Rochford Road, Portsmouth, must pay £965 in costs and fines.
Comments: Our rules
We want our comments to be a lively and valuable part of our community - a place where readers can debate and engage with the most important local issues. The ability to comment on our stories is a privilege, not a right, however, and that privilege may be withdrawn if it is abused or misused.