Stop replacing things.
An engine is still an engine, computers and sensors can't change that, they make engines more reliable but don't change what makes an engine run.
First stop would be a compression test, remove 1 spark plug from each cylinder(dual plugs), check it's tip to see if it tells you anything about that cylinders condition.
A compression test is invalid unless all cylinders are compression free, so one spark plug MUST be removed from each cylinder to test 1 cylinder.
Unplug coil wires on both coils, you want a no start
Put compression gauge in #1 and crank engine, you need to hear compression stroke at least 4 times.
Write down results
Move to #2
ect.......for all 4 cylinders
You can rent a compression gauge.
'97 2.3l has compression ratio of 9.4:1 so you should expect above 170psi in each cylinder.
If #3 is lower than the other it is most likely a valve issue which is common on Lima 4 cylinders.
The #3 misfire is most likely the source of the Lean O2 code.
O2 sensors read OXYGEN levels in exhaust NOT fuel levels
If a cylinder is firing correctly it burns up most of the oxygen but not all of it.
If a cylinder is running rich O2 will see too little oxygen.
If a cylinder doesn't fire then all the oxygen goes out the exhaust and O2 sees it, so reports Lean.
Most common cause of rough running at idle and in general is a dirty MAF(Mass Air Flow) sensor and/or a vacuum leak.
First test for vacuum leak, warm up engine, it should idle at about 750rpms.
Unplug the wires on the IAC(idle air control) valve.
Idle should drop to 500rpms or engine may even stall, either means no vacuum leak.
If idle stays high then start looking for the vacuum leak, if #3 is missing then it could be #3 intake gasket is leaking.
Clean MAF sensor every 2 or 3 years.
Run a can of Seafoam in the gas take once a year, it helps keep injector tips clean.
You can also rent fuel pressure gauge, computer can't monitor fuel pressure, on a '97 it should be 35-40psi