The following script is heavily adapted from an Audit Spreadsheet built by Ben Collins.
The logic followed is:
get the spreadsheet by url openByUrl(); though the script could just as easily have been bound to the 'IMPORTRANGE' spreadsheet
get all the sheets getSheets()and loop through each them
get the last row getLastRow(), and last column getLastColumn()...
It sounds to me like you're trying to use a spreadsheet to do the job of a database. (2000 rows is nothing. But three concurrent users, 13 tabs, feeding three other worksheets .. put those together and you're not in spreadsheet-land any more).
I'd suggest a review of your overall IT and business architecture, and make decisions from there about what ...