Something not included in the other answers:
These two lines in your main function mean that you request and parse each page twice. It also means your code is not really async, because you loop over all fabrics and just await each of them. You should be able to just remove the first one.
await fetch_pricing_data(session, pricing_url)
tasks.append(asyncio.create_task(fetch_pricing_data(session, pricing_url))
In addition, you could spawn async tasks in that function instead of the simple for loop you currently have:
for item in await fetch_design_endpoint(session, item_endpoint)
This will speed up your code by quite a lot, probably, once you have fixed the return value of that function to be outside the loop.
However, your function fetch_design_endpoint does not actually depend on anything specific in fetch_pricing_data. This is either a bug (did you want to change the URL?) or you could retrieve the results only once.