Any automotive upholstery shop should be able to recover the one you have. I wouldn't count on any of those guys to have that factory original fabric in stock.
You can get the material that you need a couple of ways.
From the stealership, but they require a 1 yard minimum purchase. Plus it's stooopid expensive!!!
Or...go to the wreckers & cut the fabric from the band that goes around the sides of a rear seat cushion. It's about the only piece of fabric in the whole truck that'll be long enough.
Wreckers hardly ever sell rear seats. Most people are buying up the buckets & the 60/40's, so those rear seats are plentiful.
I would recommend taking just the armrest + the fabric to the upholstery shop. Not the whole seat. This'll save you some $$$. Let them pull the old cover off & the new one on. They are a beee-atch to pull on. They've got the experience & know-how, too. Not only that, they can repair or replace the foam inside with the proper density required.
It's been a while since I've pulled one of those armrests off. IIRC, the zipper on the bottom side of the backrest has to be undone so that you can reach up inside to push in the spring-loaded pin that retains the armrest. It's in a key-way type of bracket inside the seat. The spring-loaded pin can be pushed in with a punch. Have to push in that pin while pulling/twisting the armrest up & down.