Not sure how to achieve this manually, probably a good idea to submit a feature request.
Based on the answer from this post: How to adjust QGIS attribute table view column width using Python?, you could write a script to resize the column width of all loaded attribute tables to fit its contents:
attrTables = [d for d in QApplication.instance().allWidgets() if d.objectName() == u'AttributeTable']
for x in attrTables:
x.findChildren(QTableView)[0].resizeColumnsToContents()
As mentioned by @BritishSteel in the comment, the above code is for attribute tables opened as a dock window. If the attribute table is either a dock window or a dialog window, the following could be used:
attrTables = [d for d in QApplication.instance().allWidgets() if d.objectName() == u'AttributeTable' or d.objectName().startswith('QgsAttributeTableDialog')]
for x in attrTables:
x.findChildren(QTableView)[0].resizeColumnsToContents()