The table itself has an autosizing policy that takes precedence:
The default is force_fit:
Fit columns into available space dividing the table width across the columns equally (equivalent to fit_columns=True). This results in no horizontal scrollbar showing up, but data can get unreadable if there is not enough space available.
I guess you want autosize_mode="none" which results in columns that are actually 500px wide (which is very, extremely wide):
Incidentally, the docstring for TableColumn.width explicitly mentions that the data table configuration controls things overall:
The width or maximum width (depending on data table’s configuration) in pixels of this column.
