How to deal with fragmentation in PostgreSQL?
CLUSTER widget USING widget_account_id_idx;

That will rewrite the table in index order, and your query will become faster.
There are down sides:

during CLUSTER, the table will be inaccessible

the order is not maintained, so you have to run CLUSTER everynow and then