Combine Full Plate and Shield with racial and class options for AC 26 without spells
There are at least three ways to get an extra +1 to AC on top of the AC 20 that full plate and shield provides to you, and possibly five:
Warforged get +1 to AC from their Integrated Protection feature. ("You gain a +1 bonus to Armor Class.")
Fighters with the Defense fighting style wearing armor get +1 to AC.
Forge Domain clerics can use the feature Blessing of the Forge to enchant their armor for +1 to AC. 1
The Soul of the Forge feature Forge Domain clerics get at 6th level adds +1 to AC while wearing armor.
As per this Q&A, you can combine all four of these, for a total AC of 24.
- Artificers get infusions on level 2. This adds +1 AC for infusing your shield with Enhanced Defense. You cannot get more because you cannot use the same infusion more than once.1
As a warforged fighter with Defensive fighting style, Chainmail and Shield you can start with AC 20 at level 1. By level 2, taking one level of Forge Domain cleric, you already will achieve AC 21, and by level 3 you should be able to upgrade to Splint Mail for AC 22. By sixth level, you will be able to afford the Plate Mail for AC 23, and by seventh level gain an extra AC for AC 24. Now take artificer levels. By ninth level, you get AC 25 from infusing your shield with Enhanced Defense, by 19th level you get another +1 to AC from better Enhanced defense on your shield alone, for a total of AC 26.
Alternative approaches to AC
The alternatives forgo (heavy) armor and sometimes shield to get to add a stat bonus (Wisdom for the Monk, Intelligence for the Bladesinger wizard, Constitution for the Barbarian) and win back the Dexterity bonus that gets quenched by heavy armor.
Normally a best case for this is +10 to AC from stats, for the +8 to +10 from armor and shield. This is on par for baseline, but it means they cannot benefit from magic armor or shield boni or enhancement features that work only with them, and have to find alternatives, like Dual Wielder.
Both the Barbarian and the Monk set your base AC to be 10 + Wis/Con + Dex, so they cannot benefit from natural armor or mage armor. The Bladesinger can (and can also use light armor).
With a variant human bladesinger 10/artificer 10, with two weapons and the Dual Wielder feat, in bladesong you would get to total AC 25 (AC 14 infused studded leather armor (+2), +5 Int from Bladesong, +5 Dex, +1 Dual Wielder. Close, but not quite as good. (I think using a warforged would not work, as it has +2 to Con that leaves you short of ASIs to max Dex/Int and take Dual Wielder).
With a warforged barbarian (the +1 bonus does not depend on armor), if you agree to Axoren's reading that you can use the Tavern Brawler / Dual Wielder feats to treat your shield as an improvised weapon while it adds its AC, you also get to a total AC 26 (10, +7 Con, +5 Dex, +2 shield, +1 Dual Wielder, +1 Integrated Protection). Else, again 25 AC, either not quite as good.
Why is this so hard?
Two of the features listed for armor based approaches compete with the improvements you could get from +1 or +2 armor and shields over time. It is really only Defense fighting style, Integrated Protection (and warforged are not available in all settings), and Soul of the Forge (from an optional class) that come on top; considering the large number of races, classes and subclasses that has been published, this is slim pickings.
Overall that it is difficult to get above permanent AC 20 without magic items is by design. AC is one of the cornerstones of bounded accuracy and ways to increase it, especially in tier 1 or 2 where 90% of play happens, risks breaking bounded accuracy.
1 This feature turns a nonmagical item into a magic item. If you would consider the use of this ability to be a "magic item" you could exclude it and still get to 23 AC. You cannot bolster your armor through both Blessing of the Forge and Enhanced Defense at the same time, as both require a nonmagical item to start from.