First I'd look at revising cantrips. Rather than scaling damage with levels, scale their secondary effects.
For example, Ray of Frost is 1d8 damage and reduces movement speed by 10, at 1st level. At 5th level, rather than the damage increasing to 2d8, have the movement speed reduction increase to 20, then 30 at level 11, and 40 at level 17. Turn your target into an immobile popsicle. It's still strong, but in a way that says "wizard" instead of "I'm a fighter that does cold damage instead of slashing damage".
Similar with Frostbite. The 1st level version gives the target disadvantage on its next attack. 5th level gives disadvantage on the next 2 attacks, 11th level on 3 attacks, and 17th level on 4 attacks.
Part of the problem with cantrips is that their secondary effects become pretty minor at high levels, so even if they seem like nice ideas at low levels, you're still encouraged to get the highest damage cantrips because damage is always useful, and they gain the most from level scaling. Thus, everyone wants Fire Bolt or Eldritch Blast, which is a problem because those lean more heavily into Martial territory.
So what about cantrips that are nothing but damage? Rebuild them.
Eldritch Blast: Add a fear effect on the scaling. (Though maybe also add a Warlock invocation that can give it back its damage scaling. It's kind of special for that class, but not so much for other classes.)
Acid Splash: Reduce target's AC each time it's hit.
Fire Bolt: The increased heat causes your target to flinch and move away (5 feet at level 5, +5 feet per tier). This movement can trigger opportunity attacks.
Etc, etc. In other words, make the casters do things that are distinctly caster-like, not caster-flavored martial. The fighter is still down there beating stuff up with a sword.
Spells
On the spell side of things, I'd nerf casting time. Basically, a spell costs as many casting time units as its level. A caster can spend either an action or a bonus action (or both) to generate a casting time point. 1st and 2nd level spells can be cast on the same turn as the casting started, but 3rd levels spells take at least 2 turns, and 9th level spells will take 5 turns at best.
Though class features might give limited ways to reduce the cast times, especially for subclass themes. The sorcerer probably also has much lower casting times due to the very limited and specialized set of spells it has access to.
And if you fail a concentration check while casting (ie: if you're attacked), accumulated casting time points are lost (but not the spell slot). So if the wizard starts casting fireball, and the enemy orc notices, it might try to attack the wizard before he finishes. Casting anything but low level spells in melee is extremely fraught.
It also puts some interesting twists on Counterspell. Martials would have viable means of stopping spells, so you're not entirely reliant on that spell, while also making the spell identification action useful because of the time that longer spells take to cast (see: Xanathar's rules on spell identification vs counterspelling).
This helps mitigate the "snap my fingers and make it happen" type magic, which I never really liked for high-level magic. Low level magic can be done that way, but high level should require concentration and build-up. Imagine Megumin from Konosuba without her ritual chants for Explosion. It just feels cheap.
At the same time, it makes the party depend more on the non-casters while waiting for the huge nukes the wizard can pull down.
General
Aside from that, I agree with the idea of cutting down on universal spells, and putting more spells in subclasses. And also, this kind of assumes re-tuning the problematic spells, such as those that Treantmonk brings up in his videos.